package com.dq.controller.api.merchant.in.template;

import com.dq.domain.address.SysRegion;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @author liuhui
 * @date 2019/12/3 0003 16:48:35
 */
public class AreaTreeBuilder {
    public static List<SysRegion.Vo> getRegionTree(Set<SysRegion.Vo> allNodes){
        Set<SysRegion.Vo> root = new HashSet<>();
        allNodes.forEach(vo -> {
            if(vo.getParentId()==null){
                root.add(vo);
            }
        });
        root.forEach(vo -> {
            getChildNode(vo,allNodes);
        });
        List<SysRegion.Vo> voList = new ArrayList<>(root);
        return voList;
    }


    public static SysRegion.Vo getChildNode(SysRegion.Vo sysRegion,Set<SysRegion.Vo> allNodes){
        allNodes.forEach(vo -> {
            if(vo.getParentId()!=null && vo.getParentId().toString().equals(sysRegion.getId().toString())){
                sysRegion.getSysRegionList().add(getChildNode(vo,allNodes));
            }
        });
        return sysRegion;
    }
}
